Computing devices (e.g., computers, tablets, smart phones, digital cameras, wearable devices, etc.) provide numerous ways for people to capture, create, share, view, and otherwise interact with numerous types of digital content. As such, users are increasingly using computing devices to capture different types of digital images or photographs (or simply “digital photos”). For example, many computing devices enable users to capture and store panoramic digital images (or simply “panoramic images”).
In many cases, computing devices capture a typical panoramic image by taking multiple images and stitching those images together in an elongated panoramic image. For example, many conventional systems for generating panoramic images involve a user holding and moving a camera, or other image capturing device (e.g., a mobile device), along a fixed line over a duration of time. Where the user fails to stay exactly along the fixed line or moves the camera at intermittent speeds resulting in bad alignment, a resultant panoramic image often includes a non-uniform shape that, results in an elongated image having various irregularities along the boundary of the resultant panoramic image. In addition to the bad alignment, another reason for shape irregularity is that panoramic images are often projected onto spherical or cylindrical surfaces that cause nonlinear transform of the boundaries. Therefore, such projected panoramic image often have an irregular shape.
Many conventional systems attempt to correct an irregular shape of a panoramic image by cropping or adding content to a panoramic image to generate an image that conforms to a predefined shape. For example, some conventional systems simply crop or add content to a panoramic image to cause the irregular shape of the panoramic image to conform to a rectangular shape. Simply cropping a panoramic image, however, often removes important features from the panoramic image. Additionally, adding content often causes portions of the panoramic image to include content that fails to blend with the rest of the image or otherwise detracts from the modified image.
As an alternative to cropping or adding content, many conventional systems cause a panoramic image to conform to a shape by warping portions of the panoramic image to conform to the predetermined shape. Conventional systems for warping a panoramic image, however, often cause noticeable distortion to various portions of the image. As a result, content within the panoramic image often gets stretched or distorted and disrupts the content of the panoramic image.
To overcome disruption caused by warping images, some conventional systems utilize content-aware warping techniques that analyze content within a panoramic image to avoid causing noticeable distortion when warping the panoramic image. For example, many conventional systems analyze pixels of a panoramic image to identify buildings, people, faces, objects, or other visual features within the content of a panoramic image and avoid stretching or modifying those regions of the panoramic image in such a way that disrupts those identified features of the image. Utilizing content-aware warping techniques, however, involves analyzing content of an image, and often becomes computationally prohibitive depending on the complexity of the individual images being stitched together. As such, many computing devices experience difficulty or take a long time to implement content-aware warping techniques. Furthermore, where an image includes dense or clustered features within the captured image, many content-aware warping techniques fail to warp the image without causing noticeable distortion throughout the panoramic image.
These and other problems exist with regard to modifying a panoramic image.